<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Promise封装AJAX</title>
  </head>
  <body>
    <button>点我</button>

    <script>
      /*
        本地访问远程接口跨域问题解决
        - 在C盘新建文件夹MyChromeUserFata
        - 复制一个chrome浏览器图标，打开属性，找到目标
        - 在其后面输入--disable-web-security --user-data-dir=F:\MyChromeUserFata
        再打开浏览器即可
        */
      // https://api.apiopen.top/getJoke
      const url = "https://api.apiopen.top/getJok";
      const p = new Promise((resolve, reject) => {
        // 1.创建对象
        const xhr = new XMLHttpRequest();
        // 2.初始化
        xhr.open("GET", url);
        // 3.发送请求
        xhr.send();
        // 4.绑定事件，处理响应结果
        xhr.onreadystatechange = function () {
          // 判断状态码
          if (xhr.status >= 200 && xhr.status < 300) {
            resolve(xhr.response);
          } else {
            reject(xhr.status);
          }
        };
      });

      // 指定回调
      p.then(
        value => {
          console.log("成功了");
        },
        reason => {
          console.error("失败了");
        }
      );
    </script>
  </body>
</html>
